The software often fails during the operating process. In a large and complicated software system with a plurality of components, a plurality of failures may occur during the process of development, testing and operation. Once the software system fails, it is usually necessary to use the experience to determine which component fails based on some the failure phenomenon.
When a software system fails, varied original operating information, such as logs, may be reserved. Generally, failures are classified by analyzing failure phenomenon or logs manually, which would not only consume a large amount of time and energy but also result in low accuracy of failure classification due to limit of knowledge on the person who analyzes the failure. Furthermore, the same failure phenomenon may occur on different components. Therefore, it is generally very difficult to determine which component should be responsible for the failure solely based on the failure phenomenon.